#ifndef LOADMAPINSTRUCTIONVIEW_H
#define LOADMAPINSTRUCTIONVIEW_H

#include <QWidget>
#include <QObject>
#include <QTranslator>
#include "loadmapinstructionview_global.h"

class ProgramView;

namespace Ui {
class LoadMapInstructionView;
}

class LOADMAPINSTRUCTIONVIEWSHARED_EXPORT LoadMapInstructionView : public QWidget
{
    Q_OBJECT

public:
    explicit LoadMapInstructionView(int styleId,QWidget *parent = 0);
    
    /**
     * @brief getInput              获取界面输入数据
     */
    void getInput();
    
    /**
     * @brief updateView            更新数据显示到界面
     */
    void updateView();
    
    /**
     * @brief changeLanguage        更改语言
     * @param language              语言编号
     */
    void changeLanguage(int language);

    void initialDisplayStyle(int styleId);

private slots:
    
    /**
     * @brief on_save_Btn_clicked           指令保存响应槽函数
     */
    void on_save_Btn_clicked();
    
    /**
     * @brief on_forward_Btn_clicked        上一页响应槽函数　  
     */
    void on_forward_Btn_clicked();
    
    /**
     * @brief on_clearNote_Btn_clicked      清除注释响应槽函数
     */
    void on_clearNote_Btn_clicked();

    /**
     * @brief listMapFileDirSlot            FTP获取服务器端地图目录下文件信息
     * @param mapDirInfoList                地图文件信息列表
     * @param ftpPath                       ftp服务器文件目录
     * @param clientPath                    客户端保存文件器目录
     */
    void listMapFileDirSlot(const QHash <QString, bool> & mapDirInfoList, const QString& ftpPath, const QString& clientPath);
    
signals:
    
    /**
     * @brief finishedEditInstruction_signal            指令属性编辑完成信号
     */
    void finishedEditInstruction_signal();
    
    /**
     * @brief saveInstruction_signal                    保存编辑好的指令字符串信号
     * @param instructionStr                            指令字符串
     */
    void saveInstruction_signal(const QString &instructionStr);
    
    /**
     * @brief cleanNote_signal                          清除注释信号
     */
    void cleanNote_signal();
    
public:
       
    /**
     * @brief programView           程序列表主界面对象
     */
    ProgramView *programView;
    
    /**
     * @brief mapFileName           地图名
     */
    QString mapFileName;
    
    /**
     * @brief jmpLabel              跳转标签
     */
    QString jmpLabel;
    
    /**
     * @brief instructionStr        指令字符串
     */
    QString instructionStr;
    
    /**
     * @brief noteStr               注释
     */
    QString noteStr;
    
private:
    Ui::LoadMapInstructionView *ui;
    
    /**
     * @brief translator            翻译
     */
    QTranslator translator;
    
    /**
     * @brief mapFileList           地图文件列表
     */
    QVector <QString> mapFileList;
};

#endif // LOADMAPINSTRUCTIONVIEW_H
